User interface for data analytics systems

ABSTRACT

A device comprising a processor and a memory may be configured to perform various aspects of the techniques described in this disclosure. The processor may present, via a first portion of a user interface, an interactive text box in which a user may enter the data indicative of the current input, present, via a second portion of the user interface, an interactive log of previous inputs entered prior the current input, and present, via a third portion of the user interface, a graphical representation of result data obtained responsive to the data indicative of the current input. The second portion of the user interface and the third portion of the user interface may be separately scrollable but coupled such that interactions in either the second portion of the user interface or the third portion of the user interface synchronize the second portion of the user interface and the third portion of the user interface. The memory may store the data indicative of the current input.

This application claims the priority to U.S. Provisional Application No.63/201,140, entitled “USER INTERFACE FOR DATA ANALYTICS SYSTEMS,” filedApr. 14, 2021, the contents of which are hereby incorporated byreference in their entirety.

TECHNICAL FIELD

This disclosure relates to computing and data analytics systems, andmore specifically, user interfaces for data analytics systems.

BACKGROUND

Data analytics systems are increasingly using natural languageprocessing to facilitate interactions by users who are unaccustomed toformal, or in other words, structured database languages. Naturallanguage processing generally refers to a technical field in whichcomputing devices process user inputs provided by users viaconversational interactions using human languages. For example, a devicemay prompt a user for various inputs, present clarifying questions,present follow-up questions, or otherwise interact with the user in aconversational manner to elicit the input. The user may likewise enterthe inputs as sentences or even fragments, thereby establishing asimulated dialog with the device to specify one or more intents (whichmay also be referred to as “tasks”) to be performed by the device.

Natural language processing may allow users unaccustomed with formal (orin other words, structured) database languages (such as a structuredquery language—SQL, or other structured database languages) to performdata analytics without having a deep knowledge of such formal databaselanguages. While natural language processing may facilitate such dataanalytics by users unaccustomed with formal database languages, the userinterface associated with natural language processing may, in someinstances, be cluttered and difficult to understand due to theconversational nature of natural language processing. Moreover, theconversation resulting from natural language processing may distractcertain users from the underlying data analytics result, therebypossibly detracting from the benefits of natural language processing inthe context of data analytics.

In addition, while natural language processing may allow usersunaccustomed with structured database languages, natural languageprocessing may still require complicated phrasings (which may also bereferred to as “utterances”) to produce various data analytic results.Such complicated phrasings are difficult to learn and may not producethe desired results when improperly entered, thereby again detractingfrom the benefits of natural language processing in the context of dataanalytics.

SUMMARY

In general, this disclosure describes techniques for a user interfacethat better facilitates user interaction with data analytic systems thatemploy natural language processing. Rather than present a cluttered userinterface in which users struggle to understand the results produced bythe data analytic system, various aspects of the techniques described inthis disclosure may allow for a seamless integration of natural languageprocessing with data analytics in a manner that results in a cohesiveuser interface by which users may intuitively understand the resultsproduced by the data analytics system.

The user interface enabled by way of the techniques described in thisdisclosure may provide, via a first portion of the user interface (e.g.,a first frame), an interactive text box that allows users to expressintents via natural language. The user interface may also include asecond portion (e.g., a second frame) that presents a historical log ofprevious inputs and responses (along with visual indicationsrepresentative of such responses and/or results) from the naturallanguage processing engine, which allows the user to quickly assess howthe results and/or responses were derived. The user interface may alsoinclude a third portion that presents a graphical representation of theresults provided responsive to any inputs. In each instance, the first,second, and third portions do not overlap or otherwise obscure data thatwould otherwise be relevant to the user at a particular point in time,thereby allowing the user to better comprehend the results provided inthe third portion of the user interface along with the historical logpresented by the second portion of the user interface.

In addition, the third portion of the user interface and the secondportion of the user interface may be separately scrollable toaccommodate how different users understand different aspects of theresults. Similar to human psychology in which predominantly right-brainusers respond to creative and artistic stimuli and predominantleft-brain users respond to logic and reason, the user interface dividesthe representation of the result into right-brain stimuli (e.g.,graphical representation of the results in the third portion of the userinterface) and left-brain stimuli (e.g., a historical log explaining howthe results were logically derived in the second portion of the userinterface). Regardless of the users predominance of right-brain orleft-brain, the user interface may synchronize the third portion of theuser interface with the second portion of the user interface responsiveto interactions with either the second portion of the user interface orthe third portion of the user interface, thereby facilitating dataanalytics regardless of the user's predominance with regard toright-brain or left-brain stimuli.

In this respect, various aspect of the techniques described in thisdisclosure may facilitate better interactions with respect to performingdata analytics while also removing clutter and other distractions thatmay distract from understanding results provided by data analyticsystems. As a result, data analytic systems may operate moreefficiently, as users are able to more quickly understand the resultswithout having to enter additional inputs and/or perform additionalinteractions with the data analytic system to understand presentedresults. By potentially reducing such inputs and/or interactions, thedata analytic system may conserve various computing resources (e.g.,processing cycles, memory space, memory bandwidth, etc.) along withpower consumption consumed by such computing resources, therebyimproving operation of data analytic systems themselves.

Moreover, various aspects of the techniques described in this disclosuremay allow users to interface with a graphical representation of a formatfor a visual representation of the underlying data (which may be storedas a table or other data structure having multiple-dimensions, and as aresult, the data may be referred to a multi-dimensional data). Ratherthan enter cumbersome utterances by which to define, via naturallanguage, the visual representation of the multi-dimensional data, theuser may interface, via a user interface, with a graphicalrepresentation (e.g., a wire-frame) of a format for such visualrepresentations of the multi-dimensional data (e.g., a chart, bubblechart, graph, etc.).

Furthermore, the user interface with which the user may interact withthe graphical representation of the format for the visualrepresentations of the multi-dimensional data may also provide datarepresentative of an input (e.g., the complicated utterance or othernatural language input) that the user would have entered to generate thevisual representation of the multi-dimensional data. This datarepresentative of the input may thereby enable the user, who may be moreright-brain predominant, to learn the less visual natural language inputby which such visual representations may be generated.

As such, various aspects of the techniques described in this disclosuremay facilitate generation of visual representations of themulti-dimensional data via graphical representations of the format forsuch visual representations, which may enable more visual (e.g.,right-brain predominant) users to create complicated visualrepresentations of the multi-dimensional data that would otherwise bedifficult and time consuming. By reducing interactions while alsoexplaining the corresponding natural language input along side thevisual representation of the mulit-dimensional data, the data analyticssystem may again operate more efficiently, as users are able to morequickly understand the results without having to enter additional inputsand/or perform additional interactions with the data analytic system toin an attempt to visualize the multi-dimensional data (which may also bereferred to as a “result”). By potentially reducing such inputs and/orinteractions, the data analytic system may conserve various computingresources (e.g., processing cycles, memory space, memory bandwidth,etc.) along with power consumption consumed by such computing resources,thereby improving operation of data analytic systems themselves.

In one aspect, the techniques are directed to a device configured toprocess data indicative of a current input, the device comprising: oneor more processors configured to: present, via a first portion of a userinterface, an interactive text box in which a user may enter the dataindicative of the current input; present, via a second portion of theuser interface, an interactive log of previous inputs entered prior thecurrent input; and present, via a third portion of the user interface, agraphical representation of result data obtained responsive to the dataindicative of the current input, wherein the second portion of the userinterface and the third portion of the user interface are separatelyscrollable but coupled such that interactions in either the secondportion of the user interface or the third portion of the user interfacesynchronize the second portion of the user interface and the thirdportion of the user interface; and a memory configured to store the dataindicative of the current input.

In another aspect, the techniques are directed to a method of processingdata indicative of a current input, the method comprising: presenting,via a first portion of a user interface, an interactive text box inwhich a user may enter the data indicative of the current input;presenting, via a second portion of the user interface, an interactivelog of previous inputs entered prior the current input; and presenting,via a third portion of the user interface, a graphical representation ofresult data obtained responsive to the data indicative of the currentinput, wherein the second portion of the user interface and the thirdportion of the user interface are separately scrollable but coupled suchthat interactions in either the second portion of the user interface orthe third portion of the user interface synchronize the second portionof the user interface and the third portion of the user interface.

In another aspect, the techniques are directed to a non-transitorycomputer-readable storage medium having instructions stored thereonthat, when executed, cause one or more processors to: present, via afirst portion of a user interface, an interactive text box in which auser may enter the data indicative of the current input; present, via asecond portion of the user interface, an interactive log of previousinputs entered prior the current input; and present, via a third portionof the user interface, a graphical representation of result dataobtained responsive to the data indicative of the current input, whereinthe second portion of the user interface and the third portion of theuser interface are separately scrollable but coupled such thatinteractions in either the second portion of the user interface or thethird portion of the user interface synchronize the second portion ofthe user interface and the third portion of the user interface.

In another aspect, the techniques are directed to a device configured toperform data analytics, the device comprising: a memory configured tostore multi-dimensional data; and one or more processors configured to:present, via a user interface, a graphical representation of a formatfor visually representing the multi-dimensional data; receive, via theuser interface, a selection of an aspect of one or more aspects of thegraphical representation of the format for visually representing themulti-dimensional data; receive, via the user interface and for theaspect of the one or more aspects of the graphical representation of theformat for visually representing the multi-dimensional data, anindication of a dimension of the multi-dimensional data; associate thedimension to the aspect to generate a visual representation of themulti-dimensional data; and present, via the user interface, the visualrepresentation of the multi-dimensional data.

In another aspect, the techniques are directed to a method of performingdata analytics, the method comprising: presenting, via a user interface,a graphical representation of a format for visually representingmulti-dimensional data; receiving, via the user interface, a selectionof an aspect of one or more aspects of the graphical representation ofthe format for visually representing the multi-dimensional data;receiving, via the user interface and for the aspect of the one or moreaspects of the graphical representation of the format for visuallyrepresenting the multi-dimensional data, an indication of a dimension ofthe multi-dimensional data; associating the dimension to the aspect togenerate a visual representation of the multi-dimensional data; andpresenting, via the user interface, the visual representation of themulti-dimensional data.

In another aspect, the techniques are directed to a non-transitorycomputer-readable storage medium having instructions stored thereonthat, when executed, cause one or more processors to: present, via auser interface, a graphical representation of a format for visuallyrepresenting multi-dimensional data; receive, via the user interface, aselection of an aspect of one or more aspects of the graphicalrepresentation of the format for visually representing themulti-dimensional data; receive, via the user interface and for theaspect of the one or more aspects of the graphical representation of theformat for visually representing the multi-dimensional data, anindication of a dimension of the multi-dimensional data; associate thedimension to the aspect to generate a visual representation of themulti-dimensional data; and present, via the user interface, the visualrepresentation of the multi-dimensional data.

The details of one or more aspects of the techniques are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of these techniques will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating a system that may perform variousaspects of the techniques described in this disclosure.

FIGS. 2A-2K are diagrams illustrating examples of user interfaces thatfacilitate interactions with the data analytics system shown in theexample of FIG. 1 in accordance with various aspects of the techniquesdescribed in this disclosure.

FIGS. 3A-3E are diagrams illustrating examples of the user interfacethat facilitate interactions with the data analytics system shown in theexample of FIG. 1 in accordance with various aspects of the techniquesdescribed in this disclosure.

FIG. 4 is a block diagram illustrating example components of the clientdevice shown in the example of FIG. 1.

FIG. 5 is a flowchart illustrating example operation of the system ofFIG. 1 in performing various aspects of the techniques described in thisdisclosure to enable more cohesive user interfaces for data analyticsystems.

FIG. 6 is a flowchart illustrating another example operation of thesystem of FIG. 1 in performing various aspects of the techniquesdescribed in this disclosure to enable more cohesive user interfaces fordata analytic systems.

DETAILED DESCRIPTION

FIG. 1 is a diagram illustrating a system 10 that may perform variousaspects of the techniques described in this disclosure to enable morecohesive user interfaces for data analytic systems. As shown in theexample of FIG. 1, system 10 includes a host device 12 and a clientdevice 14. Although shown as including two devices, i.e., host device 12and client device 14 in the example of FIG. 1, system 10 may include asingle device that incorporates the functionality described below withrespect to both of host device 12 and client device 14, or multipleclients 14 that each interface with one or more host devices 12 thatshare a mutual database hosted by one or more of the host devices 12.

Host device 12 may represent any form of computing device capable ofimplementing the techniques described in this disclosure, including ahandset (or cellular phone), a tablet computer, a so-called smart phone,a desktop computer, and a laptop computer to provide a few examples.Likewise, client device 14 may represent any form of computing devicecapable of implementing the techniques described in this disclosure,including a handset (or cellular phone), a tablet computer, a so-calledsmart phone, a desktop computer, a laptop computer, a so-called smartspeaker, so-called smart headphones, and so-called smart televisions, toprovide a few examples.

As shown in the example of FIG. 1, host device 12 includes a server 28,a CNLP unit 22, one or more execution platforms 24, and a database 26.Server 28 may represent a unit configured to maintain a conversationalcontext as well as coordinate the routing of data between CNLP unit 22and execution platforms 24.

Server 28 may include an interface unit 20, which may represent a unitby which host device 12 may present one or more interfaces 21 (which mayalso be referred to as “user interfaces 21”) to client device 14 inorder to elicit data 19 indicative of an input and/or present results25. Data 19 may be indicative of speech input, text input, image input(e.g., representative of text or capable of being reduced to text), orany other type of input capable of facilitating a dialog with hostdevice 12. Interface unit 20 may generate or otherwise output variousinterfaces 21, including graphical user interfaces (GUIs), command lineinterfaces (CLIs), or any other interface by which to present data orotherwise provide data to a user 16. Interface unit 20 may, as oneexample, output a chat interface 21 in the form of a GUI with which theuser 16 may interact to input data 19 indicative of the input (i.e.,text inputs in the context of the chat server example). Server 28 mayoutput the data 19 to CNLP unit 22 (or otherwise invoke CNLP unit 22 andpass data 19 via the invocation).

CNLP unit 22 may represent a unit configured to perform various aspectsof the CNLP techniques described in this disclosure. CNLP unit 22 maymaintain a number of interconnected language sub-surfaces (shown as“SS”) 18A-18G (“SS 18”). Language sub-surfaces 18 may collectivelyrepresent a language, while each of the language sub-surfaces 18 mayprovide a portion (which may be different portions or overlappingportions) of the language. Each portion may specify a corresponding setof syntax rules and strings permitted for the natural language withwhich user 16 may interface to enter data 19 indicative of the input.CNLP unit 22 may perform CNLP, based on the language sub-surfaces 18 anddata 19, to identify one or more intents 23. More information regardingCNLP may be provided in U.S. patent application Ser. No. 16/441,915,entitled “CONSTRAINED NATURAL LANGUAGE PROCESSING,” and filed Jun. 14,2019, the contents of which are hereby incorporated by reference as ifset forth herein in its entirety. CNLP unit 22 may output the intents 23to server 28, which may in turn invoke one of execution platforms 24associated with the intents 23, passing the intents 23 to one of theexecution platforms 24 for further processing.

Execution platforms 24 may represent one or more platforms configured toperform various processes associated with the identified intents 23. Theprocesses may each perform a different set of operations with respectto, in the example of FIG. 1, databases 26. In some examples, executionplatforms 24 may each include processes corresponding to differentcategories, such as different categories of data analysis includingsales data analytics, health data analytics, or loan data analytics,different forms of machine learning, etc. In some examples, executionplatforms 24 may perform general data analysis or other forms of dataanalytics that allows various different combinations of data stored todatabases 26 to undergo complex processing and display via charts,graphs, etc. Execution platforms 24 may process the intents 23 to obtainresults 25, which execution platforms 24 may return to server 28.Interface unit 20 may generate a GUI 21 that present results 25,transmitting the GUI 21 to client device 14.

In this respect, execution platforms 24 may generally representdifferent platforms that support applications to perform analysis ofunderlying data stored to databases 26, where the platforms may offerextensible application development to accommodate evolving collectionand analysis of data (or in other words, data analytics) or performother tasks/intents. For example, execution platforms 24 may includesuch platforms as Postgres (which may also be referred to as PostgreSQL,and represents an example of a relational database that performs dataloading and manipulation), TensorFlow™ (which may perform machinelearning in a specialized machine learning engine), and Amazon WebServices (or AWS, which performs large scale data analysis tasks thatoften utilize multiple machines, referred to generally as the cloud).

Client device 14 may include a client 30 (which may in the context of achatbot interface be referred to as a “chat client 30”). Client 30 mayrepresent a unit configured to present interfaces 21 and allow entry ofdata 19. Client 30 may execute within the context of a browser, as adedicated third-party application, as a first-party application, or asan integrated component of an operating system (not shown in FIG. 1) ofclient device 14.

Returning to natural language processing, CNLP unit 22 may perform abalanced form of natural language processing compared to other forms ofnatural language processing. Natural language processing may refer to aprocess by which host device 12 attempts to process data 19 indicativeof inputs (which may also be referred to as “inputs 19” for ease ofexplanation purposes) provided via a conversational interaction withclient device 14. Host device 12 may dynamically prompt user 16 forvarious inputs 19, present clarifying questions, present follow-upquestions, or otherwise interact with the user in a conversationalmanner to elicit input 19. User 16 may likewise enter the inputs 19 assentences or even fragments, thereby establishing a simulated dialogwith host device 12 to identify one or more intents 23 (which may alsobe referred to as “tasks 23”).

Host device 12 may present various interfaces 21 by which to present theconversation. An example interface may act as a so-called “chatbot,”which may attempt to mimic human qualities, including personalities,voices, preferences, humor, etc. in an effort to establish a moreconversational tone, and thereby facilitate interactions with the userby which to more naturally receive the input. Examples of chatbotsinclude “digital assistants” (which may also be referred to as “virtualassistants”), which are a subset of chatbots focused on a set of tasksdedicated to assistance (such as scheduling meetings, make hotelreservations, and schedule delivery of food).

A number of different natural language processing algorithms exist toparse the inputs 19 to identify intents 23, some of which depend uponmachine learning. However, natural language may not always follow aprecise format, and various users may have slightly different ways ofexpressing inputs 19 that result in the same general intent 23, some ofwhich may result in so-called “edge cases” that many natural languagealgorithms, including those that depend upon machine learning, are notprogramed (or, in the context of machine language, trained) tospecifically address. Machine learning based natural language processingmay value naturalness over predictability and precision, therebyencountering edge cases more frequently when the trained naturalness oflanguage differs from the user's perceived naturalness of language. Suchedge cases can sometimes be identified by the system and reported as aninability to understand and proceed, which may frustrate the user. Onthe other hand, it may also be the case that the system proceeds with animprecise understanding of the user's intent, causing actions or resultsthat may be undesirable or misleading.

Other types of natural language processing algorithms utilized to parseinputs 19 to identify intents 23 may rely on keywords. While keywordbased natural language processing algorithms may be accurate andpredictable, keyword based natural language processing algorithms arenot precise in that keywords do not provide much if any nuance indescribing different intents 23.

In other words, various natural language processing algorithms fallwithin two classes. In the first class, machine learning-basedalgorithms for natural language processing rely on statistical machinelearning processes, such as deep neural networks and support vectormachines. Both of these machine learning processes may suffer fromlimited ability to discern nuances in the user utterances. Furthermore,while the machine learning based algorithms allow for a wide variety ofnatural-sounding utterances for the same intent, such machine learningbased algorithms can often be unpredictable, parsing the same utterancedifferently in successive versions, in ways that are hard for developersand users to understand. In the second class, simple keyword-basedalgorithms for natural language processing may match the user'sutterance against a predefined set of keywords and retrieve theassociated intent.

In this instance, CNLP unit 22 may parse inputs 19 (which may, as oneexample, include natural language statements that may also be referredto as “utterances”) in a manner that balances accuracy, precision, andpredictability. CNLP unit 22 may achieve the balance through variousdesign decisions when implementing the underlying language surface(which is another way of referring to the collection of sub-surfaces 18,or the “language”). Language surface 18 may represent a set of potentialuser utterances for which server 28 is capable of parsing (or, in moreanthropomorphic terms, “understanding”) the intent of the user 16.

The design decisions may negotiate a tradeoff between competingpriorities, including accuracy (e.g., how frequently server 28 is ableto correctly interpret the utterances), precision (e.g., how nuanced theutterances can be in expressing the intent of user 16), and naturalness(e.g., how diverse the various phrasing of an utterance that map to thesame intent of user 16 can be). The CNLP processes may allow CNLP unit22 to unambiguously parse inputs 19 (which may also be denoted as the“utterances 19”), thereby potentially ensuring predictable, accurateparsing of precise (though constrained) natural language utterances 19.

While natural language processing may facilitate such data analytics byusers unaccustomed with formal (or in other words, structured) databaselanguages, the user interface associated with natural languageprocessing may, in some instances, be cluttered and difficult tounderstand due to the conversational nature of natural languageprocessing. In some instances, the conversation resulting from naturallanguage processing may distract certain users from the underlying dataanalytics result, thereby possibly detracting from the benefits ofnatural language processing in the context of data analytics.

In accordance with various aspects of the techniques described in thisdisclosure, server 28 may generate and provide a user interface, whichclient 30 may present, that better facilitates user interaction withdata analytic systems that employ natural language processing. Ratherthan present a cluttered user interface in which users, such as user 16,struggle to understand results 25 produced by the data analytic system(which in this example is represented by system 10), various aspects ofthe techniques described in this disclosure may allow for a seamlessintegration of natural language processing with data analytics in amanner that results in a cohesive user interface 21 by which user mayintuitively understand the results produced by the data analyticssystem.

User interface 21 enabled by way of the techniques described in thisdisclosure may provide, via a first portion (e.g., a first frame) ofuser interface 21, an interactive text box that allows users to expressintents via natural language. User interface 21 may also include asecond portion (e.g., a second frame) that presents a historical log ofprevious inputs and responses (along with visual indicationsrepresentative of such responses and/or results 25) from the naturallanguage processing engine (which is denoted as CNLP unit 22 in thisexample), which allows user 16 to quickly assess how results 25 (whichmay also be referred to as “responses 25”) were derived. User interface21 may also include a third portion that presents a graphicalrepresentation of results 25 provided responsive to any inputs 19. Ineach instance, the first, second, and third portions do not overlap orotherwise obscure data that would otherwise be relevant to user 16 at aparticular point in time, thereby allowing user 16 to better comprehendresults 26 provided in the third portion of user interface 21 along withthe historical log presented by the second portion of user interface 21.

In addition, the third portion of user interface 21 and the secondportion of user interface 21 may be separately scrollable to accommodatehow different users understand different aspects of results 25. Similarto human psychology in which predominantly right-brain users respond tocreative and artistic stimuli and predominant left-brain users respondto logic and reason, user interface 21 divides the representation ofresult 25 into right-brain stimuli (e.g., graphical representation ofresults 25 in the third portion of user interface 21) and left-brainstimuli (e.g., a historical log of how results 25 were derived in thesecond portion of user interface 21). Regardless of the user'spredominance of right-brain or left-brain, user interface 21 maysynchronize the third portion of user interface 21 with the secondportion of user interface 21 responsive to interactions with either thesecond portion of user interface 21 or the third portion of userinterface 21, thereby facilitating data analytics regardless of theuser's predominance with regard to right-brain or left-brain stimuli.

In operation, client 30 may present, via the first frame of userinterface 21, an interactive text box in which user 16 may enter datarepresentative of a current input (which may be referred to as the“current input 19” for ease of explanation). The interactive text boxmay provide suggestions (via, as one example) an expanding suggestionpane that extends above the interactive text box to facilitate user 16in entering current input 19).

Client 30 may present, via the second frame of user interface 21, aninteractive log of previous inputs (which may be denoted as “previousinputs 19′”) entered prior current input 19. The first frame and secondframe of user interface 21 may accommodate user 16 when user 16represents a user having left-brained predominance, as the first frameand second frame of user interface 21 provide a more logical definedcapability with expressing natural language utterances that directlygenerate results 25 using keywords and other syntax to whichpredominantly left-brain users predominantly relate.

Client 30 may further present, via the third frame of user interface 21,a graphical representation of result data 25 obtained responsive tocurrent input 19. This third frame of user interface 21 may accommodateuser 16 when user 16 represents a user having right-brainedpredominance, as the third frame of user interface 21 provides a moregraphical/visual/artistic capability with expressing results 25 usingvisual representations of results 25 (e.g., charts, graphs, plots, etc.)that may represent multi-dimensional data (which may also be referred toas “multi-dimensional datasets” and as such may be referred to as“multi-dimensional data 25” or “multi-dimensional datasets 25”).

To facilitate either type of user 16 (meaning predominantly left- orright-brained users), the second frame of user interface 21 and thethird frame of user interface 21 are separately scrollable but coupledsuch that interactions in either the second frame of user interface 21or the third frame of user interface 21 synchronize the second frame ofuser interface 21 and the third frame of user interface 21. In otherwords, user interface 21 may, via the third frame, enable visual users(or, in other words, right-brain predominant users) to understand how avisual representation of multi-dimensional data 25 are generated viacurrent inputs 19 (and previous inputs 19′) through synchronization ofthe second frame of user interface 21 to the third frame of userinterface 21. Such visual users may select the visual representationpresented in the third frame of user interface 21.

Moreover, user interface 21 may, via the third frame, enable logicalusers (or, in other words, left-brain predominant users) to understandhow current inputs 19 (and previous inputs 19′) result in a visualrepresentation of multi-dimensional data 25 are generated throughsynchronization of the third frame of user interface 21 to the secondframe of user interface 21. Such logical users may select input 19presented in the second frame resulted in the visual representationpresented in the third frame of user interface 21.

In this respect, various aspect of the techniques described in thisdisclosure may facilitate better interactions with respect to performingdata analytics while also removing clutter and other distractions thatmay distract from understanding results 25 provided by data analyticsystems, such as data analytic system 10. As a result, data analyticsystem 10 may operate more efficiently, as users 16 are able to morequickly understand results 25 without having to enter additional inputsand/or perform additional interactions with data analytic system 10 tounderstand presented results 25. By potentially reducing such inputsand/or interactions, data analytic system 10 may conserve variouscomputing resources (e.g., processing cycles, memory space, memorybandwidth, etc.) along with power consumption consumed by such computingresources, thereby improving operation of data analytic systemsthemselves.

Moreover, various aspects of the techniques described in this disclosuremay allow users 16 to interface with a graphical representation of aformat for a visual representation of the underlying data (which may bestored as a table or other data structure having multiple-dimensions,and as a result, the data may be referred to a multi-dimensional data25). Rather than enter cumbersome utterances (which are represented byinputs 19 in the example of FIG. 1) by which to define, via naturallanguage, the visual representation of multi-dimensional data 25, user16 may interface, via user interface 21, with a graphical representation(e.g., a wire-frame) of a format for such visual representations ofmulti-dimensional data 25 (e.g., a chart, bubble chart, graph, etc.).

Furthermore, user interface 21 with which user 16 may interact with thegraphical representation of the format for the visual representations ofmulti-dimensional data 25 may also provide data representative of input19 (e.g., the complicated utterance or other natural language input)that the user would have entered to generate the visual representationof multi-dimensional data 25. This data representative of the input 19may thereby enable user 16, who may be more right-brain predominant, tolearn less visual natural language input 19 by which such visualrepresentations of multi-dimensional data 25 may be generated.

In operation, client 30 may present, via user interface 21 (which mayinclude the three frames discussed throughout this disclosure), agraphical representation of a format for visually representingmulti-dimensional data 25. The format may change based on the particularvisual representation of multi-dimensional data 25. For example, abubble plot may include an x-axis, a y-axis, a bubble color, a bubblesize, a slider, etc. As another example, a bar chart may include anx-axis, a y-axis, a bar color, a bar size, a slider, etc. In any event,the graphical representation may present a generic representation of atype of visual representation of multi-dimensional data 25, such as ageneric bubble plot, a generic bar chart, or a generic graphicalrepresentation of any type of visual representation of multi-dimensionaldata 25.

User 21 may then interact with this general graphical representation ofthe visual representation of multi-dimensional data 25 to select one ormore aspects (which may be another way to refer to the x-axis, y-axis,bubble color, bubble size, slider, or any other aspect of the particulartype of visual representation of multi-dimensional data 25 that user 16previously selected). As such, client 30 may receive, via user interface21, the selection of an aspect of one or more aspects of the graphicalrepresentation of the format for visually representing multi-dimensionaldata 25.

After selecting the aspect, user 91 may interface with client 30, viauser interface 21, to select a dimension of multi-dimensional data 25that should be associated with the selected aspect. Client 30 may thenreceive, via user interface 30 and for the aspect of the one or moreaspects of the graphical representation of the format for visuallyrepresenting multi-dimensional data 25, an indication of the dimensionof the one or more dimensions of multi-dimensional data 25.

Client 30 may next associate the dimension to the aspect to generate avisual representation of multi-dimensional data 25 (e.g., in the form ofa bar chart, a line chart, an area chart, a gauge, a radar chart, abubble plot, a scatter plot, a graph, a pie chart, a density map, aGantt Chart, and a treemap. or any other type of plot, chart, graph orother visual representation). Client 30 may proceed to present, via userinterface 21, the visual representation of multi-dimensional data 25.

As such, various aspects of the techniques described in this disclosuremay facilitate generation of visual representations of multi-dimensionaldata 25 via graphical representations of the format for such visualrepresentations, which may enable more visual (e.g., right-brainpredominant) users to create complicated visual representations of themulti-dimensional data that would otherwise be difficult and timeconsuming (e.g., due to unfamiliarity with natural language utterancesrequired to generate the visual representations). By reducinginteractions while also explaining the corresponding natural languageinput along side the visual representation of mulit-dimensional data 25,data analytics system 10 may again operate more efficiently, as users 16are able to more quickly understand results 25 without having to enteradditional inputs and/or perform additional interactions with dataanalytic system 10 in an attempt to visualize multi-dimensional data 25(which may also be referred to as a “result 25”). By potentiallyreducing such inputs and/or interactions, data analytic system 10 mayconserve various computing resources (e.g., processing cycles, memoryspace, memory bandwidth, etc.) along with power consumption consumed bysuch computing resources, thereby improving operation of data analyticsystems themselves.

FIGS. 2A-2K are diagrams illustrating examples of user interfaces thatfacilitate interactions with the data analytics system shown in theexample of FIG. 1 in accordance with various aspects of the techniquesdescribed in this disclosure. In the example of FIG. 2A, a userinterface 21A may represent one example of user interface 21 shown inthe example of FIG. 1.

As shown in the example of FIG. 2A, user interface 21A includes a firstframe 200A (which may also be referred to as a “first pane 200A”), asecond frame 200B (which may also be referred to as a “second pane200B”), and a third frame 200C (which may also be referred to as a“third pane 200C”). First frame 200A may represent an interactive textbox in which user 16 may enter current input 19. Via first frame 200A,user 16 may, in other words, enter natural language utterances (whichagain is another way to refer to current input 19) by which to interactwith the chatbot, which in this instance is referred to as “Ava” perdialogue 202A.

Second frame 200B may represent an interactive log of previous inputs19′ entered prior to current input 19 (along with responses from thechatbot, such as dialogue 202A). Previous inputs 19′ may also bereferred to as “previous dialogues 19′” given that user 16 maintains adialogue with the chatbot (which is another way to refer to dataanalytics system 10, and therefore may also be referred to as “chatbot10”) in order to interact with data analytics system 10. Given thatsecond frame 200B may represent a log of the dialogue between user 16and chatbot 10, second frame 200B may be referred to as “dialogue frame200B” or “dialogue pane 200B.”

Third frame 200C may represent an interactive frame by which a graphicalrepresentation of results 25, where such results 25 are obtainedresponsive to current input 19. Third frame 200C may, as shown insubsequent FIGS. 2B-2K, provide a graphical representation of results 25as a log of the graphical representation of results 25 over time,allowing user 16 to traverse the log of the graphical representation ofresults 25 via separately scrolling of third frame 200C independent ofsecond frame 200B. Third frame 200C may, as a result, also be referredto as “graphical log frame 200C” and/or “graphical log pane 200C.”

In the example of FIG. 2B, a user interface 21B may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21B, similar to user interface 21A, includes first frame 200A,second frame 200B, and third frame 200C (which may collectively bereferred to as “frames 200A-200C” or “frames 200”). The differencebetween user interface 21B and user interface 21A is that user 16 hasbegun to enter text into first frame 200A (e.g., “Load data from thefile t”) as current input 19, where user interface 21B, responsive toreceiving current input 19, exposes an autocomplete box 204 thatincludes a number of different autocomplete recommendations for a filehaving a filename or other identifier that begins with the letter ‘t’(i.e., “test-sort.csv,” “test_analyze.csv,” “test_clean_m.csv” in theexample of FIG. 2B) along with a prompt to autocomplete the “filepath”by “Hit[ting] TAB to finish.”

In this respect, the interactive text box represented by first frame200A may automatically perform an autocomplete operation to facilitateentry of current input 19. The interactive text box may limit a numberof autocomplete recommendation (which may be referred to as“recommendations”) to a threshold number of recommendations (as theremay be a large number—e.g., 10, 20, . . . 100, . . . 1000, etc. ofrecommendations) to a threshold number (e.g., three in this example) ofrecommendations.

The interactive text box may limit the number of recommendations toreduce clutter and facilitate user 16 in selecting a recommendation thatis most likely to be useful to user 16. User interface 21B mayprioritize recommendations based on preferences set by user 16, recencyof accessing a various file, or any other priority based algorithm(including machine-learning or other artificial intelligent priorityand/or ranking algorithms). In some examples, the threshold is set sothat autocomplete box 204 does not fully obscure (but may partiallyobscure) second frame 200B, where such threshold may vary based ondisplay size, current viewing zoom level, device type (e.g., smartphone,laptop, desktop, etc.), and the like.

Referring next to the example of FIG. 2C, a user interface 21C mayrepresent another example of user interface 21 shown in the example ofFIG. 1. User interface 21C, similar to user interface 21B, includes“frames 200”). The difference between user interface 21C and userinterface 21B is that user 16 has completed typing the file name“titanic.csv” in the interactive text box represented by first frame200A. The interactive text box may also automatically insert highlight206 to denote portions of current input 19 that references named aspects(such as the filename “titanic.csv” in the example of FIG. 2C) of adatabase to which current input 19 is directed. Such highlighting mayenable user 16 to understand visually that named aspects are beingrecognized by data analytic system 10 as current input 19 is entered byuser 16.

In the example of FIG. 2D, a user interface 21D may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21D is similar to user interface 21C in terms of alsoincluding frames 200, but shows the result of entering current input 19into the interactive text box, at which point current input 19 becomesprevious input 19A′. Chatbot 19 returns with dialogue 202B, which ispresented in dialogue frame 200B, and table 220 reflective of“titanic.csv,” which is presented as a table 220 in graphical log frame200C.

In the example of FIG. 2E, a user interface 21E may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21E is similar to user interface 21D in terms of alsoincluding frames 200, but shows the result of entering current input 19(which is shown as previous input 19B′ as such current input 19 wasentered in first frame 200A). Chatbot 19 returns with dialogue 202C,which is presented in dialogue frame 200B and includes additional dataregarding the processing of previous input 19B′ that does not obscureany portion of graphical log frame 200C. Chatbot 19 also returns ascatter chart reflective of data analysis with respect to “titanic.csv,”which is presented as a scatter chart 222 in graphical log frame 200C.

As user interface 21E added scatter chart 222 to graphical log frame200C below table 222, table 220 moved out of view resulting in userinterface 21E adding scroll bar 208A along a right side of graphical logframe 200C. User 16 may select scroll bar 208A (or use mouse-basedscrolling or other forms of scrolling) to separately scroll graphicallog frame 200C. That is, scrolling graphical log frame 200C may notresult in scrolling of dialogue frame 200B, where graphical log frame200C may be independently scrollable from dialogue frame 200B, anddialogue frame 200B may be independently scrollable from graphical logframe 200C. In this respect, left-brain users may consider the graphicaland/or visual nature of graphical log frame 200C without distractions inscrolling of corresponding dialogue frame 200B, while right-brain usersmay consider the more textual and/or logical nature of dialogue frame200B without distractions in scrolling of corresponding graphical logframe 200C.

In addition, user interface 21E includes a full-screen indication 210Athat allows user 16 to transition user interface 21E into a full-screenmode (from a partial-screen mode) in which dialogue frame 200B isminimized and graphical log frame 200C is maximized (across the fullwidth of user interface 21E). User interface 21E, as shown in theexample of FIG. 2E, currently operates in partial-screen mode in thatgraphical log frame 200C does not span at least a substantial portion(e.g., 90-100%) of a width of user interface 21E, and dialogue frame200B is not minimized and still presented as part of user interface 21E.

Partial-screen mode may facilitate viewing of user interface 21E via aclient device 14 having larger displays (e.g., a desktop computer,workstation, larger laptops, etc.), but not be well suited for clientdevice 14 having smaller displays (e.g., smartphones, ultrabooks, etc.).In partial-screen mode, dialogue frame 200B may be positioned above (ifnot directly above) or adjacent to first frame 200A along a top boundaryof first frame 200A, and both dialogue frame 200B and first frame 200Amay have a similar width. Both first frame 200A and dialogue frame 200Breside adjacent to a right side of graphical log frame 200C.

Referring next to the example of FIG. 2F, a user interface 21F mayrepresent another example of user interface 21 shown in the example ofFIG. 1. User interface 21F is similar to user interface 21E in terms ofalso including frames 200, but shows the result of user 16 selectingfull-screen indication 210A.

Responsive to receiving the indication that user 16 selected full-screenindication 210A, user interface 21F transitions to full-screen mode inwhich dialogue frame 200B is minimized and graphical log frame 200C ismaximized (across the full width of user interface 21F). User interface21F reformats scatter chart 222 within graphical log frame 200C to spannearly (e.g., 80-99% of) the whole width of graphical log frame 200C.Also, responsive to receiving the indication that user 16 selectedfull-screen indication 210A, user interface 21F reformats first frame200A to span nearly (e.g., 80-99% of) the width of user interface 21F.As such, first frame 200A is, in this example, adjacent to a bottom ofgraphical log frame 200C, while graphical log frame 200C is adjacent toa top of first frame 200A.

Furthermore, user interface 21F may replace full-screen indication 210Awith partial-screen indication 210B. Partial-screen indication 210B maytransition user interface 21F back to the partial screen mode of userinterface 21E when selected by user 16.

In some examples, user interface 21 may automatically transition betweenpartial-screen mode and full-screen mode based on a type of device onwhich user interface 21 is displayed. The type of device may indicatewhether the device is a smartphone, laptop computer, tablet computer,hybrid computer, desktop computer. In other instances, the type ofdevice may specify a type of display in terms of size, resolution,number of displays, etc. For certain device types (smartphones, tabletcomputers, display size under a threshold, etc.), user interface 21 mayselect partial-screen mode, while for other device types (e.g., desktopcomputers, workstations, display size above the threshold), userinterface 21 may select full-screen mode. In this way, user interface 21may transition, responsive to the type of device detected, into afull-screen mode in which dialogue frame 200B is minimized and graphicallog frame 200C resides above first frame 200A.

In the example of FIG. 2G, a user interface 21G may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21G is similar to user interface 21F in terms of alsoincluding frames 200, but shows the result of user 16 selecting anexpose indication 212. First frame 200A may include expose indication212 that, when selected by user 16 while user interface 21G is infull-screen mode, results in user interface 21G exposing dialogue frame200B. In some examples, first frame 200A may only include exposeindication 212 while user interface 21G is in full-screen mode.Responsive to user 16 selecting expose indication 212, user interface21G may expose dialogue frame 200B such that dialogue frame 200B atleast partially overlaps (but does not fully obscure) graphical logframe 200C.

Turning to the example of FIG. 2H, a user interface 21H may representanother example of user interface 21 shown in the example of FIG. 1.User interface 21H is similar to user interface 21D in terms of alsoincluding frames 200, but shows the result of user 16 selecting a cancelindication 214. First frame 200A may include cancel indication 214 toenable user 16 to cancel processing of current input 19 (which is stillcurrent despite being shown in dialogue frame 200B as processing has notyet completed).

In some instances, user 16 may enter current inputs 19 thatinadvertently require significant amounts of processing that may takevery long times (multiple minutes, an hour or more, etc.) or which mayhang during processing. To allow user 16 to cancel such inputs 19, firstframe 200A may present cancel indication to cancel processing of currentinput 19. User interface 21H, responsive to selection of cancelindication 214, may interface with chatbot 10 to cancel processing ofcurrent input 19, presenting dialogue 202D indicating that chatbot 10has “interrupted your request.”

Considering next the example of FIG. 2I, a user interface 21I mayrepresent another example of user interface 21 shown in the example ofFIG. 1. User interface 21I is similar to user interface 21H in terms ofalso including frames 200, but shows the result of user 16 enteringprevious input 19C′ that indicated that chatbot 10 should “Replay theworkflow called C19inUS, where C19inUS is highlighted to signify thatthis workflow (which is a form of a dataset) is recognized by chatbot10.

Responsive to receiving previous input 19C (what at the time was currentinput 19 but is denoted as previous input 19C′ as user interface 21I hasalready processed previous input 19C′), user interface 21I may replay aprevious session entitled “C19inUS” creating dialogues 202D-202H withprevious input 19D′ interspersed between dialogues 202F and 202G indialogue frame 200B.

The notes referenced in dialogues 202E and 202F refer to respectivenotes 226A and 226B shown in graphical log frame 200C. Each of dialogues202E and 202F have a respective note indication 216A and 216B, which arepresented in dialogue frame 200B adjacent to dialogues 202E and 202F.Note indications 216A and 216B are associated with respective notes 226Aand 226B. When either of note indications 216A and 216B are selected byuser 16, user interface 21I may scroll graphical log frame 200C topresent notes 226A and 226B.

Similarly, dialogue 202G includes an associated table indication 218that is presented adjacent to dialogue 202G in dialogue frame 200B.Table indication 218 is associated with a table 226 presented ingraphical log frame 202C. Responsive to user 16 selecting tableindication 218, user interface 21I may scroll graphical log frame 202Cto present table 226. In this respect, user interface 21I may enableinteractions with dialogue frame 200B (via note indications 216A and216B and table indication 218) that alter how graphical log frame 202Cscrolls to reveal previous or future content, such as notes 226A/226Band table 226.

However, as noted by note 226B, “[a]s you scroll through, clicking inthe white space in the top right corner of the chart will take you tothe dialog [in dialogue frame 200B] that generated that chart.” In thisway, graphical log frame 200C may enable user 16 to select a chart,note, table, or other graphical representation of results 25 to scrolldialogue frame 200B. While graphical log frame 200C is independentlyscrollable (or in other words, separately scrollable) relative todialogue frame 200B and dialogue frame 200B is independently scrollable(or in other words, separately scrollable) relative to graphical logframe 200C, each of dialogue frame 200B and graphical log frame 200C areinterconnected by various interactions in either dialogue frame 200B orgraphical log frame 200C to synchronize dialogue frame 200B withgraphical log frame 200C or synchronize graphical log frame 200C withdialogue frame 200B.

In the example of FIG. 2J, a user interface 21J may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21J is similar to user interface 21I in terms of alsoincluding frames 200, but shows the result of user 16 hovering over abubble chart indication 219 presented by dialogue frame 200B. Uponreceiving an indication that user 16 is hovering (e.g., with a mousepointer or other input device) over bubble chart indication 219, userinterface 21J may present a bubble chart preview 230 of a previous orfuture (relative to where dialogue frame 200B is in time) bubble chartpresented in graphical log frame 200C. Bubble chart preview 230 maydepict the bubble chart presented in graphical log frame 200C via pop upwindow, overlay or other graphical form. Responsive to user selectingbubble chart indication 219, user interface may transition to userinterface 21K, which is discussed in more detail with respect to theexample of FIG. 2K.

In the example of FIG. 2K, user interface 21K may represent anotherexample of user interface 21 shown in the example of FIG. 1. Userinterface 21K is similar to user interface 21J in terms of alsoincluding frames 200, but shows the result of user 16 selecting bubblechart indication 219 presented by dialogue frame 200B. Responsive toselecting bubble chart indication 219, user interface 21K may scrollgraphical log frame 200C to present bubble chart 228 that is identifiedor otherwise associated with bubble chart indication 219.

Bubble chart 228 may include a bubble chart header 232 and a slider 234,where bubble chart header 232 may include a play indication 236 (as wellas other indications not discussed in detail herein). Slider 234 mayrepresent an interactive slider that user 16 may select to change adaptbubble chart to accommodate changing dimensions of multi-dimensionaldata 25. User 16 may select play indication 236, which may cause userinterface 21K to “play” an interaction as if user slid slider 234 alongthe, in this example, x-axis to manipulate bubble chart 228 along thedimensions of mutli-dimensional data 25 represented graphically bybubble chart 228.

FIGS. 3A-3E are diagrams illustrating examples of the user interfacethat facilitate interactions with the data analytics system shown in theexample of FIG. 1 in accordance with various aspects of the techniquesdescribed in this disclosure. In the example of FIG. 3A, a userinterface 321A may represent one example of user interface 21 shown inthe example of FIG. 1.

User interface 321A may be similar to user interface 21B shown in theexample of FIG. 2B in that user interface 321A includes frames 200, butmay differ in that user 16 has entered two previous inputs 319A′ andprevious input 319B′ in order to present, via user interface 321A, agraphical representation 350 of a format for visually representingmulti-dimensional data 25. In the example of FIG. 3A, user 16 hasentered previous input 319A′ to “Load data from the file titantic.csv”to load multi-dimensional data 25 related to passengers aboard theTitanic on the trip in which the Titanic sunk.

User 16 also entered previous input 319B′ to “Plot a bubble chart,”which is a generic command that results in display of graphicalrepresentation 350 of a format for visually representingmulti-dimensional data 25 as a bubble chart. In addition, although notshown in the example of FIG. 3A, user interface 321A may performautocomplete to provide a list of relevant charts (e.g., a line chart,bubble chart, scatter chart, etc.) for user 16, which user 16 may selectto autocomplete the type of chart. Moreover, user interface 321A mayautocomplete partial utterances entered as previous input 319A′ in whichuser 16 only types, as one example, “Plot a” or “bubble chart” andpresses enter to input this partial utterance. Chatbot 10 may determinebased on past interactions with user 16 that such a partial utteranceshould result in presentation of graphical representation 350 ingraphical log frame 200C.

Although described with respect to a command entered as previous input319B′, various aspects of the techniques described in this disclosuremay enable user 16 to arrive at graphical representation 350 in variousother ways. For example, user interface 321A may present a menu havingan option by which to select graphical representation 350 forconfiguring a bubble chart for multi-dimensional data 25. As anotherexample, user interface 321A may present a graphical indication (such asan icon) for various charts in a table listing multi-dimensional data 25(which is not shown in the example of FIG. 3A, but would be similar toplay indication 236 of user interface 21K shown in the example of FIG.2K).

In any event, rather than enter a full statement to plot a bubble chart,such as “Plot a bubble chart with the x-axis Pclass, the y-axis Fare,the bubble color Gender, the bubble size Age, and sibling by Survived”(which reference data concerning the titanic.csv dataset as notedabove), user 16 may enter a generic command to “Plot a bubble chart” toreveal the configurator having a graphical representation 350 of aformat for a bubble chart.

Graphical representation 350 may include one or more aspects for theformat for visually representing multi-dimensional data 25 as a bubblechart. With respect to the example of graphical representation 350, theone or more aspects are denoted as an x-axis 351A, a y-axis 351B, acolor 351C, a size 351D, and a slider 351E (which may collectively bereferred to as “aspects 351”). User 16 may select one of aspects 351,such as x-axis 351A, which may result in user interface 321A receivingthe selection of x-axis 351A of graphical representation 350 of theformat for visually representing multi-dimensional data 25 as a bubblechart.

Responsive to receiving the selection of x-axis 351A (or any otheraspect 351) of graphical representation 350, user interface 321A maypresent various options by which user 16 may select a dimension ofmulti-dimensional data 25 to associate with x-axis 351A. In the fullstatement noted above to produce a fully formed bubble chart, x-axis351A should be associated with a dimension of multi-dimensional data 25denoted as “Pclass.” An example of selecting the dimension ofmulti-dimensional data 25 to associate with x-axis 351A is described inmore detail with respect to the example of FIG. 3B.

In the example of FIG. 3B, a user interface 321B may represent oneexample of user interface 21 shown in the example of FIG. 1. Userinterface 321B may be similar to user interface 321A in that userinterface 321B includes frames 200, but differs in that graphical dialogframe 200C presents a pop-up box 360 over graphical representation 350responsive to receiving the selection of x-axis 351A. Pop-up box 360represents one example of a way by which to present options forselecting a dimension of multi-dimensional data 25. The techniquesdescribed in this disclosure, however, should not be limited to pop-upboxes, but may include any way by which to select a dimension includinga drop down list associated with each of aspects 351, a left-click menubased system which presents a list similar to pop-up box 360, or anyother interaction commonly employed by configurators or other graphicalconfiguration assistants.

Pop-up box 360 may automatically select x-axis option 361A responsive touser 16 selecting x-axis 351A, and present scope options 363A-363C alongwith scope-specific options 365A-365D. Pop-up box 360 also includesy-axis option 361B, bubble color option 361C, bubble size option 361D,and slider option 361E, which correspond to respective aspects 351B-351Erespectively.

Scope options 363A-363C may enable user 16 to select a scope forselecting the dimension of multi-dimensional data 25. Scope option 363Amay enable user 16 to select a column as the dimension, while scopeoption 363B may enable user 16 to select an aggregation of one or morecolumns that results in a new dimension added to multi-dimensional data25 that is then associated with x-axis 351A. Scope option 363B mayenable user 16 to auto-bin one or more columns of multi-dimensional data25 to create a new dimension that is then associated with x-axis 351Asimilar to scope option 363B.

Scope-specific options 365A-365D may enable a user to specify optionsspecific to each of scope options 363A-363C. In the example of FIG. 3B,scope-specific options 365A-365D are specific to scope option 363A(i.e., using columns in this example). Scope-specific option 365A-365Deach reference a different column of multi-dimensional data 25 (i.e.,columns entitled respectively “Fare,” “Pclass”—which is selected,“Survived,” and “Age”). Pop-up box 360 also includes a search option 367that enables user 16 to search for a column of multi-dimensional data 25as scope-specific options 365A-365D may only represent a sub-set of thecolumns of multi-dimensional data 25 selected based on analyticsassociated with user 16 (meaning a user profile and past history of useby user 16 of chatbot 10) and potentially other users of chatbot 10 inthe same organization or across organizations.

Pop-up box 360 also includes a generate indication 369 that enables user16 to generate a preview of the bubble chart for multi-dimensional data25 that is configured according to the association between variousaspects 351 and dimensions of multi-dimensional data 25. In someexample, generate indication 369 remains inactive until all aspects 351have been associated with a dimension of multi-dimensional data 25.Selection of generate indication 369 and the response by user interface21 to selection of generate indication 369 is described below in moredetail below with respect to the example of FIG. 3D.

Before considering the example of FIG. 3D, user 16 may instead select toscope option 363B, which enables user 16 to “Use Aggregation.” In theexample of FIG. 3C, a user interface 321C may represent an example ofuser interface 21 after user 16 has selected scope option 363B.Responsive to receiving the selection of scope option 363B, pop-up box360 may present sub-scope options 365E-365H associated with scope option363B along with another search option 368, which may perform similarsearch functions to those described above with respect to search option367 except that search option 368 searches for types of aggregation notpre-populated in pop-up window 360 as scope-specific options 365E-365H.

Scope-specific options 365E-365H may enable user 16 to performaggregation in terms of, respectively, an average, a count, a total, anda max. Responsive to selecting any of scope-specific options 365, userinterface 321C may present pop-up box 370, which may allow user 16 toselect one or more pre-populated columns and/or search for additionalcolumns over which to perform the particular type of aggregationsassociated with scope-specific options 365E-365H.

Although not shown in the example of FIGS. 3A-3E, user 16 may alsoselect scope option 363C, which performs auto-bin operations. When user16 selects scope option 363C, pop-up box 360 may provide scope-specificoptions to select a column and select the number of bins into which user16 wants to separate the values of the selected column.

Referring next to the example of FIG. 3D, a user interface 321D mayrepresent yet another example of user interface 21, which is similar touser interface 321B, except that user 16 has selected generateindication 369. Responsive to receiving the selection of generateindication 369, user interface 321D may generate and present bubblechart preview 380. In generating bubble chart preview 380, userinterface 321D may confirm that the association of the dimension to theaspect is compatible. When the association of the dimension to theaspect is not compatible, user interface 321D may present an indicationthat the association of the dimension to the aspect is not compatible,and an option to correct the association of the dimension to the aspect(which is not shown in the example of FIG. 3D for ease of illustration).

When the association of the dimension to the aspect is compatible, userinterface 321D may present bubble chart preview 380 (which may representone example of a visual representation preview 380) that provides avisual representation preview of multi-dimensional data 25. Bubble chartpreview 380 may include a use option 381, a back option 383, an editoption 385, and a view utterance option 387. Use option 381 may enableuser 16 to proceed to generate a bubble chart based on the associationsentered via one or more of user interfaces 321A-321C described abovewith respect to the examples of FIGS. 3A-3C.

Back option 385 may enable user 16 to return to one or more of userinterfaces 321A-321C (which may dispose of any changes made in bubblechart preview 380). Edit option 385 may enable user 16 to edit bubblechart preview 380 (e.g., by changing a title, color, text, and/ordescriptors associated with bubble chart preview 380).

View utterances option 387 may enable user 16 to view data indicative ofa current input (or sequence of current inputs 319) that would haveresulted in generation of the bubble chart shown in bubble chart preview380 for visualizing multi-dimensional data 25. In the example of FIG.3D, user 16 has selected view utterances option 387, which resulted inuser interface 321D generating inputs 391 that would have, when enteredby user 16, associated the dimension to the aspect to generate thebubble chart shown in bubble chart preview and presenting pop-up box 390that shows the generated inputs 391. In this respect, user 16 may learnthe logical, more formal natural language utterances over time that maybe entered to create, via first frame 200A, the bubble chart (while alsohelping user 16 to understand the more formal structure for definingmany visual representations of multi-dimensional data 25).

Assuming user 16 has confirmed that bubble chart preview 380 meetsvarious criteria, user 16 may select use option 381. Responsive toselecting use option 381, user interface 321D may automatically enterinputs 391, populating dialogue frame 200B with the utterances andpresenting a bubble chart that mirrors the bubble chart presented inbubble chart preview 380. As such, again, user 16 may understand andreview, via dialogue frame 200B and graphical log frame 200C, how thebubble chart was created. User interface 321D may also present at leasta portion of the multi-dimensional data 25 (e.g., in table form) inaddition to the visual representation of multi-dimensional data 25.

In the example of FIG. 3E, a user interface 321E represents an exampleof user interface 21 shown in the example of FIG. 1 in which user 16entered a different previous input 319C′ (compared to previous input319B′ shown in the example of FIG. 3A) to “Plot a bar chart.” Userinterface 321E may, responsive to receiving previous input 319B′,present graphical representation 395 of a format for a bar chart thatprovides a visual representation of multi-dimensional data 25 (as setforth in the titanic.csv per previous input 319A′). Graphicalrepresentation 395 has overlapping aspects 351A, 351B, and 351F with thesame aspects of graphical representation 350. Graphical representation395 also has an aspect “bar” 351F that enables user 16 to configure acolor, dimension, size, and other aspects of each bar. User 16 mayproceed as discussed above to associate aspects to dimensions, generatea preview, and use the preview to generate a bar chart.

FIG. 4 is a block diagram illustrating example components of the clientdevice 14 shown in the example of FIG. 1. In the example of FIG. 4, thedevice 14 includes a processor 412, a graphics processing unit (GPU)414, system memory 416, a display processor 418, one or more integratedspeakers 105, a display 103, a user interface 420, and a transceivermodule 422. In examples where the client device 14 is a mobile device,the display processor 418 is a mobile display processor (MDP). In someexamples, such as examples where the client device 14 is a mobiledevice, the processor 412, the GPU 414, and the display processor 418may be formed as an integrated circuit (IC).

For example, the IC may be considered as a processing chip within a chippackage and may be a system-on-chip (SoC). In some examples, two of theprocessors 412, the GPU 414, and the display processor 418 may be housedtogether in the same IC and the other in a different integrated circuit(i.e., different chip packages) or all three may be housed in differentICs or on the same IC. However, it may be possible that the processor412, the GPU 414, and the display processor 418 are all housed indifferent integrated circuits in examples where the client device 14 isa mobile device.

Examples of the processor 412, the GPU 414, and the display processor418 include, but are not limited to, one or more digital signalprocessors (DSPs), general purpose microprocessors, application specificintegrated circuits (ASICs), field programmable logic arrays (FPGAs), orother equivalent integrated or discrete logic circuitry. The processor412 may be the central processing unit (CPU) of the client device 14. Insome examples, the GPU 414 may be specialized hardware that includesintegrated and/or discrete logic circuitry that provides the GPU 414with massive parallel processing capabilities suitable for graphicsprocessing. In some instances, GPU 414 may also include general purposeprocessing capabilities, and may be referred to as a general-purpose GPU(GPGPU) when implementing general purpose processing tasks (i.e.,non-graphics related tasks). The display processor 418 may also bespecialized integrated circuit hardware that is designed to retrieveimage content from the system memory 416, compose the image content intoan image frame, and output the image frame to the display 103.

The processor 412 may execute various types of the applications.Examples of the applications include web browsers, e-mail applications,spreadsheets, video games, other applications that generate viewableobjects for display, or any of the application types listed in moredetail above. The system memory 416 may store instructions for executionof the applications. The execution of one of the applications 20 on theprocessor 412 causes the processor 412 to produce graphics data forimage content that is to be displayed and the audio data that is to beplayed. The processor 412 may transmit graphics data of the imagecontent to the GPU 414 for further processing based on and instructionsor commands that the processor 412 transmits to the GPU 414.

The processor 412 may communicate with the GPU 414 in accordance with aparticular application processing interface (API). Examples of such APIsinclude the DirectX® API by Microsoft®, the OpenGL® or OpenGL ES® by theKhronos group, and the OpenCL′; however, aspects of this disclosure arenot limited to the DirectX, the OpenGL, or the OpenCL APIs, and may beextended to other types of APIs. Moreover, the techniques described inthis disclosure are not required to function in accordance with an API,and the processor 412 and the GPU 414 may utilize any technique forcommunication.

The system memory 416 may be the memory for the source device 12. Thesystem memory 416 may comprise one or more computer-readable storagemedia. Examples of the system memory 416 include, but are not limitedto, a random-access memory (RAM), an electrically erasable programmableread-only memory (EEPROM), flash memory, or other medium that can beused to carry or store desired program code in the form of instructionsand/or data structures and that can be accessed by a computer or aprocessor.

In some examples, the system memory 416 may include instructions thatcause the processor 412, the GPU 414, and/or the display processor 418to perform the functions ascribed in this disclosure to the processor412, the GPU 414, and/or the display processor 418. Accordingly, thesystem memory 416 may be a computer-readable storage medium havinginstructions stored thereon that, when executed, cause one or moreprocessors (e.g., the processor 412, the GPU 414, and/or the displayprocessor 418) to perform various functions.

The system memory 416 may include a non-transitory storage medium. Theterm “non-transitory” indicates that the storage medium is not embodiedin a carrier wave or a propagated signal. However, the term“non-transitory” should not be interpreted to mean that the systemmemory 416 is non-movable or that its contents are static. As oneexample, the system memory 416 may be removed from the client device 14and moved to another device. As another example, memory, substantiallysimilar to the system memory 416, may be inserted into the clientdevices 14. In certain examples, a non-transitory storage medium maystore data that can, over time, change (e.g., in RAM).

The user interface 420 may represent one or more hardware or virtual(meaning a combination of hardware and software) user interfaces bywhich a user may interface with the client device 14. The user interface420 may include physical buttons, switches, toggles, lights or virtualversions thereof. The user interface 420 may also include physical orvirtual keyboards, touch interfaces—such as a touchscreen, hapticfeedback, and the like.

The processor 412 may include one or more hardware units (includingso-called “processing cores”) configured to perform all or some portionof the operations discussed above with respect to one or more of thevarious units/modules/etc. The transceiver module 422 may represent aunit configured to establish and maintain the wireless connectionbetween the devices 12/14. The transceiver module 422 may represent oneor more receivers and one or more transmitters capable of wirelesscommunication in accordance with one or more wireless communicationprotocols.

FIG. 5 is a flowchart illustrating example operation of the system ofFIG. 1 in performing various aspects of the techniques described in thisdisclosure to enable more cohesive user interfaces for data analyticsystems. Initially, client 30 may present, via the first frame (or otherportion) of user interface 21, an interactive text box in which user 16may enter data representative of a current input (which may be referredto as the “current input 19” for ease of explanation) (500). Theinteractive text box may provide suggestions (via, as one example) anexpanding suggestion pane that extends above the interactive text box tofacilitate user 16 in entering current input 19).

Client 30 may present, via the second frame (or other portion) of userinterface 21, an interactive log of previous inputs (which may bedenoted as “previous inputs 19′”) entered prior current input 19 (502).The first frame and second frame of user interface 21 may accommodateuser 16 when user 16 represents a user having left-brained predominance,as the first frame and second frame of user interface 21 provide a morelogical defined capability with expressing natural language utterancesthat directly generate results 25 using keywords and other syntax towhich predominantly left-brain users predominantly relate.

Client 30 may further present, via the third frame of user interface 21,a graphical representation of result data 25 obtained responsive tocurrent input 19, where the second portion of user interface 21 and thethird portion of user interface 21 are separately scrollable but coupledas described in more detail above (504). This third frame of userinterface 21 may accommodate user 16 when user 16 represents a userhaving right-brained predominance, as the third frame of user interface21 provides a more graphical/visual/artistic capability with expressingresults 25 using visual representations of results 25 (e.g., charts,graphs, plots, etc.) that may represent multi-dimensional data (whichmay also be referred to as “multi-dimensional datasets” and as such maybe referred to as “multi-dimensional data 25” or “multi-dimensionaldatasets 25”).

In this respect, various aspect of the techniques described in thisdisclosure may facilitate better interactions with respect to performingdata analytics while also removing clutter and other distractions thatmay distract from understanding results 25 provided by data analyticsystems, such as data analytic system 10. As a result, data analyticsystem 10 may operate more efficiently, as users 16 are able to morequickly understand results 25 without having to enter additional inputsand/or perform additional interactions with data analytic system 10 tounderstand presented results 25. By potentially reducing such inputsand/or interactions, data analytic system 10 may conserve variouscomputing resources (e.g., processing cycles, memory space, memorybandwidth, etc.) along with power consumption consumed by such computingresources, thereby improving operation of data analytic systemsthemselves.

FIG. 6 is a flowchart illustrating another example operation of thesystem of FIG. 1 in performing various aspects of the techniquesdescribed in this disclosure to enable more cohesive user interfaces fordata analytic systems. Initially, client 30 may present, via userinterface 21 (which may include the three frames discussed throughoutthis disclosure), a graphical representation of a format for visuallyrepresenting multi-dimensional data 25 (600). The format may changebased on the particular visual representation of multi-dimensional data25. For example, a bubble plot may include an x-axis, a y-axis, a bubblecolor, a bubble size, a slider, etc. As another example, a bar chart mayinclude an x-axis, a y-axis, a bar color, a bar size, a slider, etc. Inany event, the graphical representation may present a genericrepresentation of a type of visual representation of multi-dimensionaldata 25, such as a generic bubble plot, a generic bar chart, or ageneric graphical representation of any type of visual representation ofmulti-dimensional data 25.

User 21 may then interact with this general graphical representation ofthe visual representation of multi-dimensional data 25 to select one ormore aspects (which may be another way to refer to the x-axis, y-axis,bubble color, bubble size, slider, or any other aspect of the particulartype of visual representation of multi-dimensional data 25 that user 16previously selected). As such, client 30 may receive, via user interface21, the selection of an aspect of one or more aspects of the graphicalrepresentation of the format for visually representing multi-dimensionaldata 25 (602).

After selecting the aspect, user 91 may interface with client 30, viauser interface 21, to select a dimension of multi-dimensional data 25that should be associated with the selected aspect. Client 30 may thenreceive, via user interface 30 and for the aspect of the one or moreaspects of the graphical representation of the format for visuallyrepresenting multi-dimensional data 25, an indication of the dimensionof the one or more dimensions of multi-dimensional data 25 (604).

Client 30 may next associate the dimension to the aspect to generate avisual representation of multi-dimensional data 25 (e.g., in the form ofa bar chart, a line chart, an area chart, a gauge, a radar chart, abubble plot, a scatter plot, a graph, a pie chart, a density map, aGantt Chart, and a treemap. or any other type of plot, chart, graph orother visual representation) (606). Client 30 may proceed to present,via user interface 21, the visual representation of multi-dimensionaldata 25 (608).

As such, various aspects of the techniques described in this disclosuremay facilitate generation of visual representations of multi-dimensionaldata 25 via graphical representations of the format for such visualrepresentations, which may enable more visual (e.g., right-brainpredominant) users to create complicated visual representations of themulti-dimensional data that would otherwise be difficult and timeconsuming (e.g., due to unfamiliarity with natural language utterancesrequired to generate the visual representations). By reducinginteractions while also explaining the corresponding natural languageinput along side the visual representation of mulit-dimensional data 25,data analytics system 10 may again operate more efficiently, as users 16are able to more quickly understand results 25 without having to enteradditional inputs and/or perform additional interactions with dataanalytic system 10 in an attempt to visualize multi-dimensional data 25(which may also be referred to as a “result 25”). By potentiallyreducing such inputs and/or interactions, data analytic system 10 mayconserve various computing resources (e.g., processing cycles, memoryspace, memory bandwidth, etc.) along with power consumption consumed bysuch computing resources, thereby improving operation of data analyticsystems themselves.

In this way, various aspects of the techniques may enable the followingclauses:

Clause 1A. A device configured to process data indicative of a currentinput, the device comprising: one or more processors configured to:present, via a first portion of a user interface, an interactive textbox in which a user may enter the data indicative of the current input;present, via a second portion of the user interface, an interactive logof previous inputs entered prior the current input; and present, via athird portion of the user interface, a graphical representation ofresult data obtained responsive to the data indicative of the currentinput, wherein the second portion of the user interface and the thirdportion of the user interface are separately scrollable but coupled suchthat interactions in either the second portion of the user interface orthe third portion of the user interface synchronize the second portionof the user interface and the third portion of the user interface; and amemory configured to store the data indicative of the current input.

Clause 2A. The device of clause 1A, wherein the one or more processorsare further configured to: present, via the user interface, afull-screen indication that allows a user to transition the userinterface into a full-screen mode; transition, responsive to receivingan indication that the full-screen indication has been selected by theuser, the user interface into the full-screen mode in which the secondportion of the user interface is minimized and the third portion of theuser interface resides above the first portion of the user interface.

Clause 3A. The device of any combination of clauses 1A and 2A, whereinthe user interface, when in the full-screen mode, presents an exposeindication by which to display the second portion of the user interface,and wherein the one or more processors are further configured to expose,responsive to selection of the expose indication, the second portion ofthe user interface such that the second portion of the user interface atleast partially overlaps the third portion of the user interface.

Clause 4A. The device of any combination of clauses 1A-3A, wherein theone or more processors are further configured to: detect a type ofdevice on which the user interface is displayed; transition, responsiveto the type of device detected, the user interface into a full-screenmode in which the second portion of the user interface is minimized andthe third portion of the user interface resides above the first portionof the user interface.

Clause 5A. The device of any combination of clauses 1A-4A, wherein thesecond portion of the user interface is located above the first portionof the user interface, and wherein the first portion of the userinterface and the second portion of the user interface is located alonga right boundary of the third portion of the user interface.

Clause 6A. The device of any combination of clauses 1A-5A, wherein theinteractive text box automatically performs an autocomplete operation tofacilitate entry of the data indicative of the current input.

Clause 7A. The device of clause 5A, wherein the interactive text boxalso automatically highlights portions of the data indicative of thecurrent input that references named aspects of a database to which thecurrent input is directed.

Clause 8A. The device of clause 5A, wherein the interactive text boxlimits a number of recommendations suggested during the autocompleteoperation to a threshold number of recommendations.

Clause 9A. The device of any combination of clauses 1A-8A, wherein theinteractive text box includes a cancel indication that enables the userto cancel processing of the data indicative of the current input, andwherein the one or more processors are further configured to cancel,responsive to selection of the cancel indication, processing of the dataindicative of the current input.

Clause 10A. A method of processing data indicative of a current input,the method comprising: presenting, via a first portion of a userinterface, an interactive text box in which a user may enter the dataindicative of the current input; presenting, via a second portion of theuser interface, an interactive log of previous inputs entered prior thecurrent input; and presenting, via a third portion of the userinterface, a graphical representation of result data obtained responsiveto the data indicative of the current input, wherein the second portionof the user interface and the third portion of the user interface areseparately scrollable but coupled such that interactions in either thesecond portion of the user interface or the third portion of the userinterface synchronize the second portion of the user interface and thethird portion of the user interface.

Clause 11A. The method of clause 10A, further comprising: presenting,via the user interface, a full-screen indication that allows a user totransition the user interface into a full-screen mode; andtransitioning, responsive to receiving an indication that thefull-screen indication has been selected by the user, the user interfaceinto the full-screen mode in which the second portion of the userinterface is minimized and the third portion of the user interfaceresides above the first portion of the user interface.

Clause 12A. The method of any combination of clauses 10A and 11A,wherein the user interface, when in the full-screen mode, presents anexpose indication by which to display the second portion of the userinterface, and wherein the method further comprises exposing, responsiveto selection of the expose indication, the second portion of the userinterface such that the second portion of the user interface at leastpartially overlaps the third portion of the user interface.

Clause 13A. The method of any combination of clauses 10A-12A, furthercomprising: detecting a type of device on which the user interface isdisplayed; transitioning, responsive to the type of device detected, theuser interface into a full-screen mode in which the second portion ofthe user interface is minimized and the third portion of the userinterface resides above the first portion of the user interface.

Clause 14A. The method of any combination of clauses 10A-13A, whereinthe second portion of the user interface is located above the firstportion of the user interface, and wherein the first portion of the userinterface and the second portion of the user interface is located alonga right boundary of the third portion of the user interface.

Clause 15A. The method of any combination of clauses 1A-14A, wherein theinteractive text box automatically performs an autocomplete operation tofacilitate entry of the data indicative of the current input.

Clause 16A. The method of clause 15A, wherein the interactive text boxalso automatically highlights portions of the data indicative of thecurrent input that references named aspects of a database to which thecurrent input is directed.

Clause 17A. The method of clause 15A, wherein the interactive text boxlimits a number of recommendations suggested during the autocompleteoperation to a threshold number of recommendations.

Clause 18A. The method of any combination of clauses 10A-17A, whereinthe interactive text box includes a cancel indication that enables theuser to cancel processing of the data indicative of the current input,and wherein the method further comprises canceling, responsive toselection of the cancel indication, processing of the data indicative ofthe current input.

Clause 19A. A non-transitory computer-readable storage medium havinginstructions stored thereon that, when executed, cause one or moreprocessors to: present, via a first portion of a user interface, aninteractive text box in which a user may enter the data indicative ofthe current input; present, via a second portion of the user interface,an interactive log of previous inputs entered prior the current input;and present, via a third portion of the user interface, a graphicalrepresentation of result data obtained responsive to the data indicativeof the current input, wherein the second portion of the user interfaceand the third portion of the user interface are separately scrollablebut coupled such that interactions in either the second portion of theuser interface or the third portion of the user interface synchronizethe second portion of the user interface and the third portion of theuser interface.

Clause 1B. A device configured to perform data analytics, the devicecomprising: a memory configured to store multi-dimensional data; and oneor more processors configured to: present, via a user interface, agraphical representation of a format for visually representing themulti-dimensional data; receive, via the user interface, a selection ofan aspect of one or more aspects of the graphical representation of theformat for visually representing the multi-dimensional data; receive,via the user interface and for the aspect of the one or more aspects ofthe graphical representation of the format for visually representing themulti-dimensional data, an indication of a dimension of themulti-dimensional data; associate the dimension to the aspect togenerate a visual representation of the multi-dimensional data; andpresent, via the user interface, the visual representation of themulti-dimensional data.

Clause 2B. The device of clause 1B, wherein the one or more processorsare configured to, when configured to associate the dimension to theaspect, generate data indicative of an input that would have, whenentered by a user, associated the dimension to the aspect to generatethe visual representation of the multi-dimensional data; and wherein theone or more processors are further configured to present, via the userinterface, the data indicative of the input.

Clause 3B. The device of any combination of clauses 1B and 2B, whereinthe one or more processors are further configured to process thedimension of the multi-dimensional data to create a new dimension of themulti-dimensional data, and wherein the one or more processors areconfigured to, when configured to associate the dimension to the aspect,associate the new dimension to the aspect to generate the visualrepresentation of the multi-dimensional data.

Clause 4B. The device of any combination of clauses 1B-3B, wherein theone or more processors are configured to, when configured to associatethe dimension to the aspect: confirm that the association of thedimension to the aspect is compatible; and present, via the userinterface and when the association of the dimension to the aspect iscompatible, a preview of the visual representation of themulti-dimensional data.

Clause 5B. The device of clause 4B, wherein the one or more processorsare configured to, when configured to associate the dimension to theaspect, present, via the user interface and when the association of thedimension to the aspect is not compatible, an indication that theassociation of the dimension to the aspect is not compatible, and anoption to correct the association of the dimension to the aspect.

Clause 6B. The device of any combination of clauses 4B and 5B, whereinthe one or more processors are configured to, when configured to presentthe preview of the visual representation of the multi-dimensional data,present an option to edit the visual representation of themulti-dimensional data.

Clause 7B. The device of clause 6B, wherein the one or more processorsare configured to, when configured to present the option to edit thevisual representation of the multi-dimensional data, present the optionto edit one or more of a color, a title, text, and descriptorsassociated with the visual representation of the multi-dimensional data.

Clause 8B. The device of any combination of clauses 1B-7B, wherein theone or more processors are further configured to present, via the userinterface, at least a portion of the multi-dimensional data in additionto the visual representation of the multi-dimensional data.

Clause 9B. The device of any combination of clauses 1B-8B, wherein thevisual representation of the multi-dimensional data includes a barchart, a line chart, an area chart, a gauge, a radar chart, a bubbleplot, a scatter plot, a graph, a pie chart, a density map, a GanttChart, and a treemap.

Clause 10B. A method of performing data analytics, the methodcomprising: presenting, via a user interface, a graphical representationof a format for visually representing multi-dimensional data; receiving,via the user interface, a selection of an aspect of one or more aspectsof the graphical representation of the format for visually representingthe multi-dimensional data; receiving, via the user interface and forthe aspect of the one or more aspects of the graphical representation ofthe format for visually representing the multi-dimensional data, anindication of a dimension of the multi-dimensional data; associating thedimension to the aspect to generate a visual representation of themulti-dimensional data; and presenting, via the user interface, thevisual representation of the multi-dimensional data.

Clause 11B. The method of clause 10B, wherein associating the dimensionto the aspect comprises generating data indicative of an input thatwould have, when entered by a user, associated the dimension to theaspect to generate the visual representation of the multi-dimensionaldata; and wherein the method further comprises presenting, via the userinterface, the data indicative of the input.

Clause 12B. The method of any combination of clauses 10B and 11B,further comprising processing the dimension of the multi-dimensionaldata to create a new dimension of the multi-dimensional data, whereinassociating the dimension to the aspect comprises associating the newdimension to the aspect to generate the visual representation of themulti-dimensional data.

Clause 13B. The method of any combination of clauses 10B-12B, whereinassociating the dimension to the aspect comprises: confirming that theassociation of the dimension to the aspect is compatible; andpresenting, via the user interface and when the association of thedimension to the aspect is compatible, a preview of the visualrepresentation of the multi-dimensional data.

Clause 14B. The method of clause 13B, wherein associating the dimensionto the aspect comprises presenting, via the user interface and when theassociation of the dimension to the aspect is not compatible, anindication that the association of the dimension to the aspect is notcompatible, and an option to correct the association of the dimension tothe aspect.

Clause 15B. The method of any combination of clauses 13B and 14B,wherein presenting the preview of the visual representation of themulti-dimensional data comprises presenting an option to edit the visualrepresentation of the multi-dimensional data.

Clause 16B. The method of clause 15B, wherein presenting the option toedit the visual representation of the multi-dimensional data comprisespresenting the option to edit one or more of a color, a title, text, anddescriptors associated with the visual representation of themulti-dimensional data.

Clause 17B. The method of any combination of clauses 10B-16B, furthercomprising presenting, via the user interface, at least a portion of themulti-dimensional data in addition to the visual representation of themulti-dimensional data.

Clause 18B. The method of any combination of clauses 10B-17B, whereinthe visual representation of the multi-dimensional data includes a barchart, a line chart, an area chart, a gauge, a radar chart, a bubbleplot, a scatter plot, a graph, a pie chart, a density map, a GanttChart, and a treemap.

Clause 19B. A non-transitory computer-readable storage medium havinginstructions stored thereon that, when executed, cause one or moreprocessors to: present, via a user interface, a graphical representationof a format for visually representing multi-dimensional data; receive,via the user interface, a selection of an aspect of one or more aspectsof the graphical representation of the format for visually representingthe multi-dimensional data; receive, via the user interface and for theaspect of the one or more aspects of the graphical representation of theformat for visually representing the multi-dimensional data, anindication of a dimension of the multi-dimensional data; associate thedimension to the aspect to generate a visual representation of themulti-dimensional data; and present, via the user interface, the visualrepresentation of the multi-dimensional data.

In each of the various instances described above, it should beunderstood that the devices 12/14 may perform a method or otherwisecomprise means to perform each step of the method for which the devices12/14 is described above as performing. In some instances, the means maycomprise one or more processors. In some instances, the one or moreprocessors may represent a special purpose processor configured by wayof instructions stored to a non-transitory computer-readable storagemedium. In other words, various aspects of the techniques in each of thesets of encoding examples may provide for a non-transitorycomputer-readable storage medium having stored thereon instructionsthat, when executed, cause the one or more processors to perform themethod for which the devices 12/14 has been configured to perform.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over as oneor more instructions or code on a computer-readable medium and executedby a hardware-based processing unit. Computer-readable media may includecomputer-readable storage media, which corresponds to a tangible mediumsuch as data storage media. Data storage media may be any availablemedia that can be accessed by one or more computers or one or moreprocessors to retrieve instructions, code and/or data structures forimplementation of the techniques described in this disclosure. Acomputer program product may include a computer-readable medium.

Likewise, in each of the various instances described above, it should beunderstood that the client device 14 may perform a method or otherwisecomprise means to perform each step of the method for which the clientdevice 14 is configured to perform. In some instances, the means maycomprise one or more processors. In some instances, the one or moreprocessors may represent a special purpose processor configured by wayof instructions stored to a non-transitory computer-readable storagemedium. In other words, various aspects of the techniques in each of thesets of encoding examples may provide for a non-transitorycomputer-readable storage medium having stored thereon instructionsthat, when executed, cause the one or more processors to perform themethod for which the client device 14 has been configured to perform.

By way of example, and not limitation, such computer-readable storagemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage, or other magnetic storage devices, flashmemory, or any other medium that can be used to store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. It should be understood, however, thatcomputer-readable storage media and data storage media do not includeconnections, carrier waves, signals, or other transitory media, but areinstead directed to non-transitory, tangible storage media. Disk anddisc, as used herein, includes compact disc (CD), laser disc, opticaldisc, digital versatile disc (DVD), floppy disk and Blu-ray disc, wheredisks usually reproduce data magnetically, while discs reproduce dataoptically with lasers. Combinations of the above should also be includedwithin the scope of computer-readable media.

Instructions may be executed by one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someexamples, the functionality described herein may be provided withindedicated hardware and/or software modules configured for encoding anddecoding or incorporated in a combined codec. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

The techniques of this disclosure may be implemented in a wide varietyof devices or apparatuses, including a wireless handset, an integratedcircuit (IC) or a set of ICs (e.g., a chip set). Various components,modules, or units are described in this disclosure to emphasizefunctional aspects of devices configured to perform the disclosedtechniques, but do not necessarily require realization by differenthardware units. Rather, as described above, various units may becombined in a codec hardware unit or provided by a collection ofinteroperative hardware units, including one or more processors asdescribed above, in conjunction with suitable software and/or firmware.

Various aspects of the techniques have been described. These and otheraspects of the techniques are within the scope of the following claims.

What is claimed is:
 1. A device configured to process data indicative ofa current input, the device comprising: one or more processorsconfigured to: present, via a first portion of a user interface, aninteractive text box in which a user may enter the data indicative ofthe current input; present, via a second portion of the user interface,an interactive log of previous inputs entered prior the current input;and present, via a third portion of the user interface, a graphicalrepresentation of result data obtained responsive to the data indicativeof the current input, wherein the second portion of the user interfaceand the third portion of the user interface are separately scrollablebut coupled such that interactions in either the second portion of theuser interface or the third portion of the user interface synchronizethe second portion of the user interface and the third portion of theuser interface; and a memory configured to store the data indicative ofthe current input.
 2. The device of claim 1, wherein the one or moreprocessors are further configured to: present, via the user interface, afull-screen indication that allows a user to transition the userinterface into a full-screen mode; transition, responsive to receivingan indication that the full-screen indication has been selected by theuser, the user interface into the full-screen mode in which the secondportion of the user interface is minimized and the third portion of theuser interface resides above the first portion of the user interface. 3.The device of claim 1, wherein the user interface, when in thefull-screen mode, presents an expose indication by which to display thesecond portion of the user interface, and wherein the one or moreprocessors are further configured to expose, responsive to selection ofthe expose indication, the second portion of the user interface suchthat the second portion of the user interface at least partiallyoverlaps the third portion of the user interface.
 4. The device of claim1, wherein the one or more processors are further configured to: detecta type of device on which the user interface is displayed; transition,responsive to the type of device detected, the user interface into afull-screen mode in which the second portion of the user interface isminimized and the third portion of the user interface resides above thefirst portion of the user interface.
 5. The device of claim 1, whereinthe second portion of the user interface is located above the firstportion of the user interface, and wherein the first portion of the userinterface and the second portion of the user interface is located alonga right boundary of the third portion of the user interface.
 6. Thedevice of claim 1, wherein the interactive text box automaticallyperforms an autocomplete operation to facilitate entry of the dataindicative of the current input.
 7. The device of claim 6, wherein theinteractive text box also automatically highlights portions of the dataindicative of the current input that references named aspects of adatabase to which the current input is directed.
 8. The device of claim6, wherein the interactive text box limits a number of recommendationssuggested during the autocomplete operation to a threshold number ofrecommendations.
 9. The device of claim 1, wherein the interactive textbox includes a cancel indication that enables the user to cancelprocessing of the data indicative of the current input, and wherein theone or more processors are further configured to cancel, responsive toselection of the cancel indication, processing of the data indicative ofthe current input.
 10. A method of processing data indicative of acurrent input, the method comprising: presenting, via a first portion ofa user interface, an interactive text box in which a user may enter thedata indicative of the current input; presenting, via a second portionof the user interface, an interactive log of previous inputs enteredprior the current input; and presenting, via a third portion of the userinterface, a graphical representation of result data obtained responsiveto the data indicative of the current input, wherein the second portionof the user interface and the third portion of the user interface areseparately scrollable but coupled such that interactions in either thesecond portion of the user interface or the third portion of the userinterface synchronize the second portion of the user interface and thethird portion of the user interface.
 11. The method of claim 10, furthercomprising: presenting, via the user interface, a full-screen indicationthat allows a user to transition the user interface into a full-screenmode; transitioning, responsive to receiving an indication that thefull-screen indication has been selected by the user, the user interfaceinto the full-screen mode in which the second portion of the userinterface is minimized and the third portion of the user interfaceresides above the first portion of the user interface.
 12. The method ofclaim 10, wherein the user interface, when in the full-screen mode,presents an expose indication by which to display the second portion ofthe user interface, and wherein the method further comprises exposing,responsive to selection of the expose indication, the second portion ofthe user interface such that the second portion of the user interface atleast partially overlaps the third portion of the user interface. 13.The method of claim 10, further comprising: detecting a type of deviceon which the user interface is displayed; transitioning, responsive tothe type of device detected, the user interface into a full-screen modein which the second portion of the user interface is minimized and thethird portion of the user interface resides above the first portion ofthe user interface.
 14. The method of claim 10, wherein the secondportion of the user interface is located above the first portion of theuser interface, and wherein the first portion of the user interface andthe second portion of the user interface is located along a rightboundary of the third portion of the user interface.
 15. The method ofclaim 10, wherein the interactive text box automatically performs anautocomplete operation to facilitate entry of the data indicative of thecurrent input.
 16. The method of claim 15, wherein the interactive textbox also automatically highlights portions of the data indicative of thecurrent input that references named aspects of a database to which thecurrent input is directed.
 17. The method of claim 15, wherein theinteractive text box limits a number of recommendations suggested duringthe autocomplete operation to a threshold number of recommendations. 18.The method of claim 10, wherein the interactive text box includes acancel indication that enables the user to cancel processing of the dataindicative of the current input, and wherein the method furthercomprises canceling, responsive to selection of the cancel indication,processing of the data indicative of the current input.
 19. Anon-transitory computer-readable storage medium having instructionsstored thereon that, when executed, cause one or more processors to:present, via a first portion of a user interface, an interactive textbox in which a user may enter the data indicative of the current input;present, via a second portion of the user interface, an interactive logof previous inputs entered prior the current input; and present, via athird portion of the user interface, a graphical representation ofresult data obtained responsive to the data indicative of the currentinput, wherein the second portion of the user interface and the thirdportion of the user interface are separately scrollable but coupled suchthat interactions in either the second portion of the user interface orthe third portion of the user interface synchronize the second portionof the user interface and the third portion of the user interface.